package com.biz.primus.model.member.vo.response;

import com.biz.primus.base.enums.ChannelTypes;
import com.biz.primus.model.member.enums.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户信息响应vo
 *
 * @author jun.liu
 * @date 2017年10月22日
 * @reviewer
 * @see
 */
@ApiModel(description = "vo")
@Getter
@Setter
@ToString
public class MemberInfoResponseVo extends BaseResponseVo
{

    /**
     * 会员名
     */
    @ApiModelProperty("会员名")
    private String memberName;

    /**
     * 真实姓名
     */
    @ApiModelProperty("真实姓名")
    private String idCardName;

    /**
     * 手机号
     */
    @ApiModelProperty("手机号")
    private String mobile;

    /**
     * 邮件
     */
    @ApiModelProperty("邮件")
    private String email;

    /**
     * 加密盐值
     */
    @ApiModelProperty("加密盐值")
    private String salt;

    /**
     * 注册门店用以记录第三方的门店信息等
     */
    @ApiModelProperty("注册门店用以记录第三方的门店信息等")
    private String regDept;

    /**
     * 省id
     */
    @ApiModelProperty("省id")
    private Integer provinceId;

    /**
     * 市id
     */
    @ApiModelProperty("市id")
    private Integer cityId;

    /**
     * 区id
     */
    @ApiModelProperty("区id")
    private Integer districtId;

    /**
     * 区域
     */
    @ApiModelProperty("区域")
    private String area;

    /**
     * 固定电话
     */
    @ApiModelProperty("固定电话")
    private String tel;

    /**
     * 邮政编码
     */
    @ApiModelProperty("邮政编码")
    private String zipCode;

    /**
     * 身份证号码
     */
    @ApiModelProperty("身份证号码")
    private String idCard;

    /**
     * 用户昵称
     */
    @ApiModelProperty("用户昵称")
    private String nickName;

    /**
     * 头像地址
     */
    @ApiModelProperty("头像地址")
    private String portraitUrl;

    /**
     * 生日
     */
    @ApiModelProperty("生日")
    private LocalDateTime birthday;

    /**
     * 推荐人（推荐号，可以用来存储会员id，也可以是第三方系统的id或者识别数据）
     */
    @ApiModelProperty("推荐人")
    private String referees;

    /**
     * 推荐时间
     */
    @ApiModelProperty("推荐时间")
    private LocalDateTime refereeTimestamp;

    /**
     * 职业
     */
    @ApiModelProperty("职业")
    private String vocation;

    /**
     * 兴趣爱好
     */
    @ApiModelProperty("兴趣爱好")
    private String interest;

    /**
     * 备注
     */
    @ApiModelProperty("备注")
    private String remark;

    /**
     * 注册的渠道
     * 如果是虚拟会员 说明没有注册
     */
    @ApiModelProperty("注册的渠道")
    private ChannelTypes channelType;

    /**
     * 推荐人类型
     */
    @ApiModelProperty("推荐人类型")
    private RefereesTypes refereesType;

    /**
     * 性别
     */
    @ApiModelProperty("性别")
    private SexTypes sexType;

    /**
     * 会员权属类型
     */
    @ApiModelProperty("会员权属类型")
    private OwnershipTypes ownershipType;

    /**
     * 婚姻状况
     */
    @ApiModelProperty("婚姻状况")
    private MaritalStatusTypes maritalStatusType;

    /**
     * 学历
     */
    @ApiModelProperty("学历")
    private EducationTypes educationType;

    /**
     * 会员类型  app 微商城 b2c等自有会员算C端  B端算第三方 如erp会员 虚拟会员指的没有账号 未在被系统下单的 如从天猫下单 京东下单拉取的信息
     */
    @ApiModelProperty("会员类型")
    private MemberTypes memberType;

    /**
     * 默认地址
     */
    @ApiModelProperty("默认地址")
    private String memberAddress;

    /**
     * 会员当前等级 MemberLevel对象
     */
    @ApiModelProperty("会员当前等级")
    private Integer level;

    /**
     * 等级别名
     */
    @ApiModelProperty("等级别名")
    private String levelDesc;

    /**
     * 会员所拥有的账号（如手机注册的账号，邮箱注册的账号，自己填写的用户名注册的账号，其他注册的账号等）
     * 多个以逗号分隔
     */
    @ApiModelProperty("会员所拥有的账号（如手机注册的账号，邮箱注册的账号，自己填写的用户名注册的账号，其他注册的账号等）(多个以逗号分)")
    private String memberAccountIds;

    /**
     * 会员所拥有的标签id集合
     * 多个以逗号分
     */
    @ApiModelProperty("会员所拥有的标签id集合(多个以逗号分)")
    private String labelIds;

    /**
     * 会员所拥有的分组id集合
     * 多个以逗号分
     */
    @ApiModelProperty("会员所拥有的分组id集合(多个以逗号分)")
    private String groupIds;

    /**
     * 会员状态
     */
    @ApiModelProperty("会员状态")
    private MemberStateTypes state = MemberStateTypes.NORMAL;

    /**
     * 会员积分
     */
    @ApiModelProperty("会员积分")
    private Integer point;

    /**
     * 来源(pc, wap)
     */
    @ApiModelProperty("来源(pc, wap)")
    private String source;

    /**
     * 是否还有首单奖励,fase有,true没有
     */
    @ApiModelProperty("是否还有首单奖励,fase有,true没有")
    private Boolean notFirstOrder = false;

    /**
     * 首单ID
     */
    @ApiModelProperty("首单ID")
    private Long firstOrderId;

}
